package API.RegexDome;

/**
 * ClassName:RegexText006
 * Package:API.RegexDome
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/2/1-10:33
 * @Version:v1.0
 */
public class RegexText006 {
    /*
     * 校验用输入的手机号码是否满足要求
     * 校验用户输入的邮箱号是否满足需求
     * 校验用户输入的座机号是否满足需求
     *
     * 心得：
     * 拿着正确的数据从左到右一次去写
     * */
    public static void main(String[] args) {
        String regex001 = "15803423617";
        boolean matches001 = regex001.matches("1[3-9]\\d{9}");
        System.out.println(matches001);//true
        /*
         * 1 表示手机号码只能1开头
         * [3-9] 表示手机号码第二位只能是3-9之间的
         * \\d{9} 表示任意数字可以出现9次,也只能出现9次
         * */
        System.out.println("-----------------------");

        //座机号
        /*
         * 1：区号--->0 开头   从区号第二位开始可以是任意数字,可以出现2到3次
         * 2：- 次数 0 次或 1 次 --->?表示0次或一次
         * 3：号码 号码的第一位不能是0开头,从第二位开始是任意数字,号码的总长度：5-10位*/
        String regex002 = "020-2324242";
        boolean matches002 = regex002.matches("0\\d{2,3}-?[1-9]\\d{4,9}");
        System.out.println(matches002);//true


        //电子邮箱
        /*
         * @ 的左边  \\w==[a-zA-Z_0-9]至少出现一次
         * @ 只能出现一次
         * -->.的左边 [\\w&&[^_]]  任意的字母加数字总共出现2-6次
         * --> \\.
         * -->点的右边大写,小写字母都可以,只能出现2-3次
         *        .com.cn   (\.[a-zA-Z]{2,3}){1,2}  看成一组,可以出现1次或2次
         *
         * */
        String regex003 = "3102845941@qq.com";
        String regex004 = "zhangsan@qq.com";
        String regex005 = "zhangsan@itcast.cnn";
        String regex006 = "zhangsan@163.cnn";
        String regex007 = "dlei0009@pci.com.cn";
        boolean matches003 = regex003.matches("\\w+@[\\w&&[^_]]{2,6}(\\.[a-zA-Z]{2,3}){1,2}");


        //24小时的正则表达式
        /*
         * ([01]\d|2[0-3])
         * -->01 02 03 ……13 14 19
         * -->20 21 22 23 24
         *
         * [0-5]\d   分钟
         *
         * [0-5]\d   秒钟
         *
         * 分钟：秒钟 看成一组(:[0-5]\d){2}
         * */
        String regex008 = "([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";
        System.out.println("12:04:31".matches(regex008));//true
    }
}
